package com.pai4j.domain.vo.request.request;

import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Assert;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 程序员七七， https://www.coderutil.com网站作者
 * @date 2024/11/9 03:29
 */
@Data
public class SendRedPacketRequestVO {

    /**
     * 红包发送人
     */
    private String sender;

    /**
     * 接收人，可能是人 / 群
     */
    private String receiver;

    /**
     * 红包封面图，不上传封面使用系统默认红包封面
     */
    private String cover;

    private String blessing;

    /**
     * 拼手气、普通红包（平均分配）
     */
    private Integer type;

    /**
     * 总金额
     */
    private BigDecimal totalMoney;

    /**
     * 一共几个，发给个人只能一次拆一个，发给群聊可以配置多个
     */
    private Integer count;

    private Date expireDate;


    public void validateRequestParam() {
        Assert.isTrue(StringUtils.isNotBlank(receiver), "红包接收人不能为空！");
        Assert.isTrue(type != null, "红包类型不能为空！");
        Assert.isTrue(totalMoney != null &&
                               totalMoney.compareTo(new BigDecimal("200")) <= 0 &&
                               totalMoney.compareTo(new BigDecimal("1")) >= 0, "红包金额控制 1 ~ 200之间！");
        Assert.isTrue(count != null && count > 0, "红包个数至少应该配置1个");
    }
}
